#ifndef _CSTATEMANAGER_H
#define	_CSTATEMANAGER_H


#include "IGamePlay.h"
#include "IGameState.h"
//#include "CMainState.h"
#include "MapTest.h"
//#include "QuadTreeTest.h"

class IGamePlay;
class IGameState;
class CGraphic;



class CStateManager
{
public:
	//--------------------------------------------//
	//	Constructor and Destructor for this class //
	//--------------------------------------------//
	CStateManager(IGamePlay *game);
	~CStateManager();

	//--------------------------------//
	//	Public methods for this class //
	//--------------------------------//
	void	Init		();
	void	Update		();
	void	Render		();
	void	Destroy		();

	void	SetState	( IGameState *state );


	//----------------------------------//
	//	Public variables for this class //
	//----------------------------------//
	CGraphic		*m_pGraphic;
	CInput			*m_pInput;
private:
	IGameState		*m_CurrentState;
	IGameState		*m_NextState;
};

#endif